﻿namespace Financial.Infra.DDD
{
    public interface IRepository<T>
        where T : IIdentifiable
    {
        T Create(T entity);

        T Update(T entity);

        T CreateOrUpdate(T entity);

        void Remove(T entity);

        void Remove(int Id);

        T FetchById(int Id);

        T[] FetchAll();
    }
}
